#include <string>
#include <iostream>
#include "groupeAbonne.h"


GroupeAbonne::GroupeAbonne(long max)
{
	taille=max;
	nb_abn=0;
	tab_abn= new Abonne[taille];
	
}
GroupeAbonne::~GroupeAbonne()
{
	delete[] tab_abn;
}
GroupeAbonne::GroupeAbonne(const GroupeAbonne& A)
{
	taille=A.taille;
	nb_abn=A.nb_abn;
	tab_abn= new Abonne[taille];
	for(long i=0;i<nb_abn;i++)
	{
		tab_abn[i]=A.tab_abn[i];
	}

}

bool GroupeAbonne::ajouter_Abonne(const Abonne& A)
{
	  if(nb_abn==taille)
	  {
		return false;
	  }else{
	  	tab_abn[nb_abn]=A;
	  	nb_abn++;
	  	return true;
	       }

}
void GroupeAbonne::supprimer(int numero)
{
	int j;
	for(int i=0;i<nb_abn;i++)
	{
		if(tab_abn[i].getNumero()== numero)
		{
			 for(j=i;j<nb_abn-1;j++)
			 {
			 	tab_abn[j]=tab_abn[nb_abn];
			 }
			
		}
	}

}
void GroupeAbonne::afficher_Abonne()
{
	 
	for(int i=0;i<nb_abn;i++)
	{
		tab_abn[i].afficher();
	}
	
}

GroupeAbonne& GroupeAbonne::operator=(const GroupeAbonne& A)
{
	if(this != &A) // this est un pointeur sur l'objet courant
	{
		delete[] tab_abn;
		taille=A.taille;
		nb_abn=A.nb_abn;
		tab_abn= new Abonne[taille];
		for(long i=0;i<nb_abn;i++)
		{
			tab_abn[i]=A.tab_abn[i];
		}
	}
return *this; //*this c'est l'objet lui mm
}
